home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Software 2000
/
Software 2000 Volume 1 (Disc 1 of 2).iso
/
education
/
e005.dms
/
e005.adf
/
Stepstone
(
.txt
)
< prev
next >
Wrap
AmigaBASIC Source Code
|
1989-09-24
|
17KB
|
634 lines
CLEAR,25000:CLEAR,50000
SCREEN 1,320,200,3,1
WINDOW 2,,,0,1
ON BREAK GOSUB quit: BREAK ON
FOR x=0 TO 7
READ r,g,b
PALETTE x,r,g,b
NEXT
DATA 0,0,0,.33,.87,0,.93,.2,0,.4,.6,1,1,.73,0,.73,.73,.73,1,.13,.93,1,1,1
REM 0-black,1-green,2-red,3-blue,4-orange,5-grey,6-mauve,7-white
DEFINT a-z
RANDOMIZE TIMER
DIM check(225),grid(17,17),cordx(17,17),cordy(17,17),bonus(17,17)
DIM gotbonus(2,17,17)
GOSUB graphics
COLOR 3
LOCATE 5,5:PRINT "S T E P P I N G S T O N E S";
COLOR 4:LOCATE 7,13:PRINT "BY ERIC COVELL"
COLOR 5
ditto:
LOCATE 10,4:INPUT"Do you want instructions (y,n)";ans$:ans$=UCASE$(ans$)
IF ans$<>"Y" AND ans$<>"N" THEN ditto
IF ans$="Y" THEN GOSUB instructions
restart:
GOSUB getnames
CLS
LOCATE 2,5:COLOR 7:PRINT "MAZE 1"
LOCATE 4,5:PRINT "MAZE 1 + BONUSES"
LOCATE 6,5:PRINT "MAZE 1 + BONUSES + FOOTPRINTS"
LOCATE 8,5:PRINT "MAZE 2"
LOCATE 10,5:PRINT "MAZE 2 + BONUSES"
LOCATE 12,5:PRINT "MAZE 2 + BONUSES + FOOTPRINTS"
LOCATE 14,5:PRINT "RANDOM MAZE"
LOCATE 16,5:PRINT "RANDOM MAZE + BONUSES"
LOCATE 18,5:PRINT "RANDOM MAZE + BONUSES + FOOTPRINTS"
FOR y=6 TO 134 STEP 16:LINE(5,y)-(17,y+12),3,b:NEXT
LOCATE 20,5:COLOR 2:PRINT "Click in box of choice"
type=3
GOSUB readmouse
level=choice
start:
CLS
FOR x=0 TO 225:check(x)=0:NEXT
y=0
FOR x=1 TO 225
again:
p=INT(RND*225)+1
IF check(p)<>0 THEN again
y=y+1:IF y=7 THEN y=1
check(p)=y
NEXT
y=9:x=0:k=0
FOR j=2 TO 16
y=y+11
FOR i=2 TO 16
x=x+11
k=k+1
m=check(k)
grid(i,j)=m
cordx(i,j)=x:cordy(i,j)=y
NEXT
x=0
NEXT
rubout=0
IF level=1 THEN GOSUB obstacle2
IF level=2 THEN GOSUB obstacle2:GOSUB bonus
IF level=3 THEN rubout=1:GOSUB obstacle2:GOSUB bonus
IF level=4 THEN GOSUB obstacle1
IF level=5 THEN GOSUB obstacle1:GOSUB bonus
IF level=6 THEN rubout=1:GOSUB obstacle1:GOSUB bonus
IF level=7 THEN GOSUB maze
IF level=8 THEN GOSUB maze:GOSUB bonus
IF level=9 THEN rubout=1:GOSUB maze:GOSUB bonus
y=9:x=0
FOR j=2 TO 16
y=y+11
FOR i= 2 TO 16
x=x+11
m=grid(i,j)
LINE(x,y)-(x+10,y+10),m,bf
IF level<>1 AND level<>4 AND level<>7 THEN GOSUB printbonus
NEXT
x=0
NEXT
FOR x=1 TO 3
p=INT(RND*6)+1
col(x)=p
NEXT
y=8
FOR x=1 TO 3
y=y+12
LINE(199,y)-(229,y+10),col(x),bf
NEXT
LINE(197,18)-(231,56),7,b
PUT(199,69),nw,PSET
PUT(209,69),north,PSET
PUT(219,69),ne,PSET
PUT(199,79),west,PSET
PUT(219,79),east,PSET
PUT(199,89),sw,PSET
PUT(209,89),south,PSET
PUT(219,89),se,PSET
cx(1)=9:cx(2)=9:cy(1)=2:cy(2)=16
LINE(cordx(cx(1),cy(1)),cordy(cx(1),cy(1)))-(cordx(cx(1),cy(1))+10,cordy(cx(1),cy(1))+10),7,b
LINE(cordx(cx(2),cy(2)),cordy(cx(2),cy(2)))-(cordx(cx(2),cy(2))+10,cordy(cx(2),cy(2))+10),0,b
IF pla=1 THEN
r=0
FOR y=12 TO 92 STEP 16
r=r+1
LINE(280,y)-(292,y+12),r,b
NEXT
END IF
LOCATE 14,24:COLOR 6:PRINT "SCORES";
x=LEN(names$(1)):p=10-x:LOCATE 15,24:COLOR 7,3:PRINT names$(1)+SPACE$(p)
x=LEN(names$(2)):p=10-x:LOCATE 17,24:COLOR 0,3:PRINT names$(2)+SPACE$(p);
LOCATE 15,34:PRINT score(1):LOCATE 17,34:PRINT score(2)
begin:
cp=1
WHILE xxx=0
pn=pn+1:IF pn=3 THEN pn=1
LOCATE 19,24:COLOR ,0:PRINT " ";
LOCATE 19,24:COLOR 2:PRINT names$(pn);
tryagain:
LOCATE 20,24:COLOR 0:PRINT " "
LOCATE 20,24:COLOR 7:PRINT "SELECT DIRECTION";
type=1
GOSUB readmouse
GOSUB checkchoice
badmove:
IF flag=1 THEN
COLOR 0:LOCATE 20,24:PRINT " ";
COLOR 2:LOCATE 20,24:PRINT "ILLEGAL MOVE";
FOR x=1 TO 5000:NEXT
GOTO tryagain
END IF
GOSUB update
IF wrong=1 THEN flag=1:GOTO badmove
IF pn=2 AND cy(1)=16 OR cy(2)=2 THEN xxx=1:GOTO over
IF pn=2 THEN GOSUB changecolour
over:
WEND
LOCATE 1,1
PRINT:COLOR 5:PRINT " PRESS SPACE BAR TO CONTINUE";
ee:a$=INKEY$:IF a$<>" "THEN ee
CLS
newgame:
LOCATE 10,10
INPUT"ANOTHER GAME (Y/N)";ans$
ans$=UCASE$(ans$)
IF ans$<>"Y" AND ans$<>"N" THEN newgame
IF ans$="Y" THEN
xxx=0:FOR w=1 TO 2:FOR x=1 TO 17:FOR y=1 TO 17:gotbonus(w,x,y)=0:NEXT:NEXT:NEXT
FOR x=1 TO 17:FOR y=1 TO 17:bonus(x,y)=0:NEXT:NEXT
CLS:LOCATE 10,10
INPUT"SAME PLAYERS (Y/N)";ans$
ans$=UCASE$(ans$)
51 :
IF ans$<>"Y" AND ans$<>"N" THEN 51
IF ans$="Y" THEN samep=1 :ELSE samep=0:FOR y=1 TO 2:score(y)=0:NEXT
IF samep=1 THEN
CLS:LOCATE 10,1
PRINT "CONTINUE SCORE OR START AGAIN"
INPUT "TYPE 'C' TO CONTINUE, 'R' TO RESTART";ans$
ans$=UCASE$(ans$)
59 :
IF ans$<>"C" AND ans$<>"R" THEN 59
IF ans$="R" THEN FOR y=1 TO 2:score(y)=0:NEXT
END IF
GOTO restart
END IF
quit:
CLEAR,25000
SYSTEM
END
getnames:
IF samep=1 THEN 6000
FOR x=1 TO 2
19 :
CLS:LOCATE 10,1: COLOR 6:PRINT "Player ";x;" please type your name":INPUT"max 10 letters ",names$(x)
names$(x)=UCASE$(names$(x))
l= LEN(names$(x)):IF l>10 THEN 19
NEXT
6000 :
CLS
LINE(10,20)-(50,60),4,b
LINE(10,90)-(50,130),4,b
LOCATE 5,10:COLOR 5:PRINT "Players control colours"
LOCATE 15,10:COLOR 5:PRINT "Random colours"
LOCATE 21,10:COLOR 6:PRINT "Click on selection"
type=2
GOSUB readmouse
IF choice=1 THEN pla=1 :ELSE pla=0
RETURN
update:
IF pn=1 THEN cc=7 :ELSE cc=0
oldcol=grid(cx(pn),cy(pn))
IF gotbonus(pn,newcx(pn),newcy(pn))=1 AND choice<>5 THEN wrong=1 :ELSE wrong=0
IF newcx(pn)=cx(3-pn) AND newcy(pn)=cy(3-pn) THEN wrong=1 :ELSE wrong=0
IF wrong=1 THEN RETURN
IF rubout=1 THEN
IF choice<>5 THEN
LINE(cordx(cx(pn),cy(pn)),cordy(cx(pn),cy(pn)))-(cordx(cx(pn),cy(pn))+10,cordy(cx(pn),cy(pn))+10),0,bf
grid(cx(pn),cy(pn))=0
END IF
END IF
IF rubout=0 THEN LINE(cordx(cx(pn),cy(pn)),cordy(cx(pn),cy(pn)))-(cordx(cx(pn),cy(pn))+10,cordy(cx(pn),cy(pn))+10),oldcol,b
LINE(cordx(newcx(pn),newcy(pn)),cordy(newcx(pn),newcy(pn)))-(cordx(newcx(pn),newcy(pn))+10,cordy(newcx(pn),newcy(pn))+10),cc,b
cx(pn)=newcx(pn):cy(pn)=newcy(pn)
IF choice=5 THEN sc=0
IF choice=4 OR choice=6 THEN sc=1
IF pn=1 THEN
IF choice=7 OR choice=8 OR choice=9 THEN sc=2
IF choice=1 OR choice=2 OR choice=3 THEN sc=-2
END IF
IF pn=2 THEN
IF choice=1 OR choice=2 OR choice=3 THEN sc=2
IF choice=7 OR choice=8 OR choice=9 THEN sc=-2
END IF
score(pn)=score(pn)+sc
IF level<>1 AND level<>4 AND level<>7 THEN
IF choice<>5 THEN
sc=bonus(cx(pn),cy(pn))
IF sc>0 THEN gotbonus(pn,cx(pn),cy(pn))=1
score(pn)=score(pn)+sc
END IF
END IF
IF pn=1 THEN r=0 :ELSE r=2
LOCATE 15+r,34:PRINT " ";:COLOR 5:LOCATE 15+r,34:PRINT score(pn);
RETURN
changecolour:
rcol(2)=col(1):rcol(3)=col(2)
IF pla=0 THEN col(1)=INT(RND*6)++1 :ELSE col(1)=0
col(2)=rcol(2):col(3)=rcol(3)
j=8
FOR i=1 TO 3
j=j+12
LINE(199,j)-(229,j+10),col(i),bf
NEXT
IF pla=1 THEN
COLOR 0:LOCATE 19,24:PRINT " ";
cp=3-cp
COLOR 2:LOCATE 19,24:PRINT names$(cp);
COLOR 0:LOCATE 20,24:PRINT " ";
COLOR 4:LOCATE 20,24:PRINT "Select Colour"
type=4
GOSUB readmouse
col(1)=choice
LINE(199,20)-(229,30),col(1),bf
END IF
RETURN
checkchoice:
flag=0
ON choice GOSUB 1,2,3,4,5,6,7,8,9
newcol=grid(newcx(pn),newcy(pn))
IF newcol=0 THEN flag=1
IF newcol<>col(3) THEN flag=1
IF choice=5 THEN flag=0
RETURN
printbonus:
aa=bonus(i,j)
IF aa<>0 THEN
IF aa=1 THEN PUT(cordx(i,j)+2,cordy(i,j)+2),one,PSET
IF aa=2 THEN PUT(cordx(i,j)+2,cordy(i,j)+2),two,PSET
IF aa=3 THEN PUT(cordx(i,j)+2,cordy(i,j)+2),three,PSET
IF aa=4 THEN PUT(cordx(i,j)+2,cordy(i,j)+2),four,PSET
IF aa=5 THEN PUT(cordx(i,j)+2,cordy(i,j)+2),five,PSET
IF aa=6 THEN PUT(cordx(i,j)+2,cordy(i,j)+2),six,PSET
END IF
RETURN
1 :
newcx(pn)=cx(pn)-1:newcy(pn)=cy(pn)-1
RETURN
2 :
newcx(pn)=cx(pn):newcy(pn)=cy(pn)-1
RETURN
3 :
newcx(pn)=cx(pn)+1:newcy(pn)=cy(pn)-1
RETURN
4 :
newcx(pn)=cx(pn)-1:newcy(pn)=cy(pn)
RETURN
5 :
newcx(pn)=cx(pn):newcy(pn)=cy(pn)
RETURN
6 :
newcx(pn)=cx(pn)+1:newcy(pn)=cy(pn)
RETURN
7 :
newcx(pn)=cx(pn)-1:newcy(pn)=cy(pn)+1
RETURN
8 :
newcx(pn)=cx(pn):newcy(pn)=cy(pn)+1
RETURN
9 :
newcx(pn)=cx(pn)+1:newcy(pn)=cy(pn)+1
RETURN
obstacle1:
FOR j=4 TO 14 STEP 10
FOR i=3 TO 5
grid(i,j)=0
grid(i+5,j)=0
grid(i+10,j)=0
NEXT
NEXT
FOR i=2 TO 4
grid(i,9)=0:grid(i+4,9)=0:grid(i+8,9)=0:grid(i+12,9)=0
NEXT
RETURN
obstacle2:
FOR j=5 TO 6
FOR i=2 TO 4
grid(i,j)=0
grid(i+5,j)=0
grid(i+7,j)=0
grid(i+12,j)=0
NEXT
NEXT
FOR j=12 TO 13
FOR i=2 TO 4
grid(i,j)=0
grid(i+5,j)=0
grid(i+7,j)=0
grid(i+12,j)=0
NEXT
NEXT
RETURN
bonus:
FOR x=1 TO 225:check(x)=0:NEXT
IF level>6 THEN 2000
IF level>3 THEN 2001
count=1:x=0
WHILE count<13
1900 :
p=INT(RND*75)+1
IF check(p)<>0 THEN 1900
x=x+1
IF x<2 THEN q=6 :ELSE IF x<4 THEN q=5 :ELSE IF x<6 THEN q=4 :ELSE IF x<8 THEN q=3 :ELSE IF x<10 THEN q=2 :ELSE q=1
check(p)=q
count=count+1
WEND
k=0
FOR j=7 TO 11
FOR i=2 TO 16
k=k+1
m=check(k)
bonus(i,j)=m
NEXT
NEXT
RETURN
2000 :
FOR x=1 TO 30
2010 :
j=INT(RND*13)+3
i=INT(RND*13)+3
IF grid(i,j)=0 THEN 2010
IF bonus(i,j)<>0 THEN 2010
k=INT(RND*6+1)
bonus(i,j)=k
NEXT
RETURN
2001 :
count=1:x=0
WHILE count<21
2002 :
p=INT(RND*120)+1
IF check(p)<>0 THEN 2002
x=x+1
IF x<3 THEN q=6 :ELSE IF x<6 THEN q=5 :ELSE IF x<9 THEN q=4 :ELSE IF x<12 THEN q=3 :ELSE IF x<15 THEN q=2 :ELSE q=1
check(p)=q
count=count+1
WEND
k=0
FOR j=5 TO 8
FOR i=2 TO 16
k=k+1
bonus(i,j)=check(k)
NEXT:NEXT
FOR j=10 TO 13
FOR i=2 TO 16
k=k+1
bonus(i,j)=check(k)
NEXT:NEXT
RETURN
maze:
FOR j=1 TO 10:FOR i=1 TO 10:maze(i,j)=0:NEXT:NEXT
FOR x=1 TO 10
3000 :
j=INT(RND*7)+3
i=INT(RND*7)+3
IF maze(i,j)<>0 THEN 3000
maze(i,j)=1
GOSUB fillmaze
NEXT
RETURN
fillmaze:
j1=i:i1=j
grid(i,j)=0:grid(18-j,i)=0:grid(18-i,18-j)=0:grid(j,18-i)=0
RETURN
readmouse:
WHILE MOUSE(0)<>0:WEND
WHILE MOUSE(0)=0:WEND
xm=MOUSE(1):ym=MOUSE(2)
IF type=4 THEN 1150
IF type=3 THEN 1100
IF type=2 THEN 1000
IF type=1 THEN
IF xm>229 OR xm<199 OR ym>100 OR ym<69 THEN readmouse
IF ym<80 THEN
IF xm>218 THEN choice=3 :ELSE IF xm>209 THEN choice=2 :ELSE choice=1
END IF
IF ym>79 AND ym<91 THEN
IF xm>218 THEN choice=6 :ELSE IF xm>209 THEN choice=5 :ELSE choice=4
END IF
IF ym>90 AND ym<102 THEN
IF xm>218 THEN choice=9 :ELSE IF xm>209 THEN choice=8 :ELSE choice=7
END IF
END IF
1000 :
IF type=2 THEN
IF xm<10 OR xm>50 OR ym<20 OR ym >130 THEN readmouse
IF ym>60 AND ym<90 THEN readmouse
IF ym<60 THEN choice=1 :ELSE choice=2
END IF
1100 :
IF type=3 THEN
choice=0
IF xm<5 OR xm>17 OR ym<6 OR ym>146 THEN readmouse
IF ym<19 THEN choice=1
IF ym>21 AND ym<35 THEN choice=2
IF ym>37 AND ym<51 THEN choice=3
IF ym>53 AND ym<67 THEN choice=4
IF ym>69 AND ym<83 THEN choice=5
IF ym>85 AND ym<99 THEN choice=6
IF ym>101 AND ym<115 THEN choice=7
IF ym>117 AND ym<131 THEN choice=8
IF ym>133 AND ym<147 THEN choice=9
IF choice=0 THEN readmouse
END IF
1150 :
IF type=4 THEN
choice=0
IF xm<280 OR xm>292 OR ym<12 OR ym>104 THEN readmouse
IF ym<25 THEN choice=1
IF ym>27 AND ym<41 THEN choice=2
IF ym>43 AND ym<57 THEN choice=3
IF ym>59 AND ym<73 THEN choice=4
IF ym>75 AND ym<89 THEN choice=5
IF ym>91 AND ym<105 THEN choice=6
END IF
RETURN
graphics:
DIM north(33)
FOR i=0 TO 32:READ north(i):NEXT
DATA &hA,&hA,&h3,&h0,&hC00,&h1E00,&h3F00,&h7F80
DATA &h7F80,&hC00,&hC00,&hC00,&h0,&hFFC0,&h8C40,&h9E40
DATA &hAF40,&hFFC0,&hFFC0,&h8C40,&h8C40,&h8C40,&hFFC0,&h0
DATA &hC00,&h1E00,&h2F00,&h7F80,&h7F80,&hC00,&hC00,&hC00
DATA &h0
DIM south(33)
FOR i=0 TO 32:READ south(i):NEXT
DATA &hA,&hA,&h3,&h0,&hC00,&hC00,&hC00,&h7F80
DATA &h7F80,&h3F00,&h1E00,&hC00,&h0,&hFFC0,&h8C40,&h8C40
DATA &h8C40,&hFFC0,&hFFC0,&hBF40,&h9E40,&h8C40,&hFFC0,&h0
DATA &hC00,&hC00,&hC00,&h7F80,&h7F80,&h3F00,&h1E00,&hC00
DATA &h0
DIM east(33)
FOR i=0 TO 32:READ east(i):NEXT
DATA &hA,&hA,&h3,&h0,&hC00,&hE00,&hF00,&h7F80
DATA &h7F80,&hF00,&hE00,&hC00,&h0,&hFFC0,&h8C40,&h8E40
DATA &h8F40,&hFFC0,&hFFC0,&h8F40,&h8E40,&h8C40,&hFFC0,&h0
DATA &hC00,&hE00,&hF00,&h7F80,&h7F80,&hF00,&hE00,&hC00
DATA &h0
DIM west(33)
FOR i=0 TO 32:READ west(i):NEXT
DATA &hA,&hA,&h3,&h0,&hC00,&h1C00,&h3C00,&h7F80
DATA &h7F80,&h3C00,&h1C00,&hC00,&h0,&hFFC0,&h8C40,&h9C40
DATA &hBC40,&hFFC0,&hFFC0,&hBC40,&h9C40,&h8C40,&hFFC0,&h0
DATA &hC00,&h1C00,&h3C00,&h7F80,&h7F80,&h3C00,&h1C00,&hC00
DATA &h0
DIM nw(33)
FOR i=0 TO 32:READ nw(i):NEXT
DATA &hA,&hA,&h3,&h0,&h7F00,&h7E00,&h7C00,&h7C00
DATA &h7E00,&h6700,&h4380,&h180,&h0,&hFFC0,&hFF40,&hFE40
DATA &hFC40,&hFC40,&hFE40,&hE740,&hC3C0,&h81C0,&hFFC0,&h0
DATA &h7F00,&h7E00,&h7C00,&h7C00,&h7E00,&h6700,&h4380,&h180
DATA &h0
DIM ne(33)
FOR i=0 TO 32:READ ne(i):NEXT
DATA &hA,&hA,&h3,&h0,&h3F80,&h1F80,&hF80,&hF80
DATA &h1F80,&h3980,&h7080,&h6000,&h0,&hFFC0,&hBFC0,&h9FC0
DATA &h8FC0,&h8FC0,&h9FC0,&hB9C0,&hF0C0,&hE040,&hFFC0,&h0
DATA &h3F80,&h1F80,&hF80,&hF80,&h1F80,&h3980,&h7080,&h6000
DATA &h0
DIM sw(33)
FOR i=0 TO 32:READ sw(i):NEXT
DATA &hA,&hA,&h3,&h0,&h180,&h4380,&h6700,&h7E00
DATA &h7C00,&h7C00,&h7E00,&h7F00,&h0,&hFFC0,&h81C0,&hC3C0
DATA &hE740,&hFE40,&hFC40,&hFC40,&hFE40,&hFF40,&hFFC0,&h0
DATA &h180,&h4380,&h6700,&h7E00,&h7C00,&h7C00,&h7E00,&h7F00
DATA &h0
DIM se(33)
FOR i=0 TO 32:READ se(i):NEXT
DATA &hA,&hA,&h3,&h0,&h6000,&h7080,&h3980,&h1F80
DATA &hF80,&hF80,&h1F80,&h3F80,&h0,&hFFC0,&hE040,&hF0C0
DATA &hB9C0,&h9FC0,&h8FC0,&h8FC0,&h9FC0,&hBFC0,&hFFC0,&h0
DATA &h6000,&h7080,&h3980,&h1F80,&hF80,&hF80,&h1F80,&h3F80
DATA &h0
DIM one(18)
FOR i=0 TO 17:READ one(i):NEXT
DATA &h3,&h5,&h3,&hA000,&h2000,&hA000,&hA000,&h0
DATA &hA000,&h2000,&hA000,&hA000,&h0,&hA000,&h2000,&hA000
DATA &hA000,&h0
DIM two(18)
FOR i=0 TO 17:READ two(i):NEXT
DATA &h3,&h5,&h3,&h0,&hC000,&h0,&h6000,&h0
DATA &h0,&hC000,&h0,&h6000,&h0,&h0,&hC000,&h0
DATA &h6000,&h0
DIM three(18)
FOR i=0 TO 17:READ three(i):NEXT
DATA &h3,&h5,&h3,&h0,&hC000,&h0,&hC000,&h0
DATA &h0,&hC000,&h0,&hC000,&h0,&h0,&hC000,&h0
DATA &hC000,&h0
DIM four(18)
FOR i=0 TO 17:READ four(i):NEXT
DATA &h3,&h5,&h3,&h6000,&h6000,&h4000,&h0,&hC000
DATA &h6000,&h6000,&h4000,&h0,&hC000,&h6000,&h6000,&h4000
DATA &h0,&hC000
DIM five(18)
FOR i=0 TO 17:READ five(i):NEXT
DATA &h3,&h5,&h3,&h0,&h6000,&h0,&hC000,&h0
DATA &h0,&h6000,&h0,&hC000,&h0,&h0,&h6000,&h0
DATA &hC000,&h0
DIM six(18)
FOR i=0 TO 17:READ six(i):NEXT
RETURN
DATA &h3,&h5,&h3,&h0,&h6000,&h0,&h4000,&h0
DATA &h0,&h6000,&h0,&h4000,&h0,&h0,&h6000,&h0
DATA &h4000,&h0
instructions:
COLOR 1:CLS
PRINT "Move from one side of playfield to the"
PRINT "other. You can only move to a square"
PRINT "of the same color as the lowest of the"
PRINT "block of three colors shown on the"
PRINT "right side of the screen."
PRINT:COLOR 2
PRINT "Moving forward either in a vertical or"
PRINT "diagonal direction scores 2 points."
PRINT "Moving backward loses 2 points, while"
PRINT "moving on the same row scores 1 point."
PRINT "Staying on the same square scores zero."
PRINT:COLOR 3
PRINT "Click on the appropriate arrow symbol-"
PRINT "(left mouse button) - when prompted to "
PRINT "move. Click on the blank square in the"
PRINT "center of the arrow symbols to stay on"
PRINT "the same square."
PRINT:COLOR 4
PRINT "When both players have completed their"
PRINT "turn, the block of colors moves down 1"
PRINT "place so what was the current color is"
PRINT "replaced by the next color, and so on."
PRINT:COLOR 5:PRINT " PRESS SPACE BAR TO CONTINUE";
aa:a$=INKEY$:IF a$<>" "THEN aa
CLS:COLOR 1
PRINT "The third colour is now chosen. At the"
PRINT "start of the game you will be given the"
PRINT "choice of having the new color chosen"
PRINT "randomly or alternately by the players."
PRINT "This option adds considerably to the"
PRINT "tactics of the game. Pick the colour"
PRINT "you want by clicking in one of the six"
PRINT "boxes on the right of the screen when"
PRINT "prompted."
PRINT:COLOR 2
PRINT "There are 3 playfields available. The "
PRINT "first 2 playfields have black bands "
PRINT "across the screen with gaps in them."
PRINT "The 3rd playfield has a series of black"
PRINT "squares randomly generated in crossword"
PRINT "puzzle fashion. You cannot move onto a"
PRINT "black square. There are 3 alternatives"
PRINT "for each playfield."
PRINT
COLOR 3:PRINT " 1) No additions
COLOR 4:PRINT " 2) Bonus numbers
COLOR 6:PRINT " 3) Bonus numbers + footprints"
PRINT:COLOR 5:PRINT " PRESS SPACE BAR TO CONTINUE";
bb:a$=INKEY$:IF a$<>" "THEN bb
CLS:COLOR 1
PRINT "1) No additions: The game is played"
PRINT "on the playfields as described above."
COLOR 2:PRINT
PRINT "2) Numbers are shown randomly on some"
PRINT "of the squares. Landing on any of the"
PRINT "bonus squares adds the bonus value to"
PRINT "your score. You may only land on any"
PRINT "one bonus square once during the game."
COLOR 3:PRINT
PRINT "3) In this variation, bonuses are as"
PRINT "in 2), but as you leave any square,"
PRINT "the square, any bonus are blacked out"
PRINT "so either player can use the square"
PRINT "subsequently."
PRINT "Hence, you leave a trail of `footprints'"
PRINT "as you travel the screen. It is fairly"
PRINT "easy to get trapped using the footprint"
PRINT "variations, particularly for the first"
PRINT "2 playfields. Always make sure there is"
PRINT "a route open for you to reach the other"
PRINT "side of the playfield."
PRINT:COLOR 5:PRINT " PRESS SPACE BAR TO CONTINUE";
cc:a$=INKEY$:IF a$<>" "THEN cc
CLS
COLOR 4:PRINT
PRINT "The first named player plays white and"
PRINT "moves down the playfield. The second "
PRINT "player plays black and moves upward. No"
PRINT "player can move to a square occupied by"
PRINT "the other."
COLOR 2:PRINT
PRINT "The game ends when one of the players "
PRINT "has crossed the playfield. If this is"
PRINT "the first player then the other player"
PRINT "is given one more move. The winner is "
PRINT "the player with the highest score. You "
PRINT "will be given the opportunity to carry"
PRINT "the score forward if the same players "
PRINT "are competing."
PRINT:COLOR 5:PRINT " PRESS SPACE BAR TO CONTINUE";
dd:a$=INKEY$:IF a$<>" "THEN dd
RETURN